home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Network CD 1
/
Network CD.iso
/
amospd
/
491-500
/
apd500
/
karl_roberts
/
blitter_scroll.amos
/
blitter_scroll.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1986-08-03
|
4KB
|
95 lines
'**********************************************************
'* INNOVATIONS 1993 *
'* *
'* Title: Blitter scroll with speed, pause, extra scrolls *
'* distortion, and reflection ideas *
'* *
'* Code : Icky *
'* *
'* I've put some extra lines, of code in so take out the *
'* comment '* and have a mess around........... *
'* *
'******************************************************** *
Screen Open 1,340,260,2,Lowres
Curs Off : Flash Off : Cls 0 : Hide On
Colour 1,$FFF : Autoback 0
Screen Open 0,370,30,2,Lowres
Curs Off : Flash Off : Cls 0 : Hide On
Autoback 0
Palette $4,$F
Screen Display 0,,274,,
Channel 0 To Screen Display 0
Amal 0,"A:M 0,-260,260;M 0,260,260; J A"
Dreg(0)=Execall(-132)
_SCROLL_ROUTINE[0,0,0,14,2]
Procedure _SCROLL_ROUTINE[SCRN,X,Y,SIZE,SPEED]
Set Rainbow 0,1,4097,"","","(1,31,1)"
Rainbow 0,2,293,14
Set Rainbow 1,1,4097,"(1,31,1)","(1,31,1)","(1,31,1)"
Rainbow 1,0,274,16
SPEED=6
T$="&eA SIMPLE BLITTER SCROLL WITHOUT USEING THE SLOW DEF SCROLL"
T$=T$+" AND NOT JERKY EITHER. IT DEPENDS WHAT YOU DO TO IT. HARDWARE"
T$=T$+" IS BETTER AND FINALLY GETTING AMAL TO DO IT MAKES ALL THE DIFFERENCE"
T$=T$+"^AFTER A WEEK OF SCRATCHING MY HEAD ITS DONE. BUT ITS HARDER USING"
T$=T$+" THE BLITTER, BECAUSE THE RESULTS TEND TO BE MORE JERKIER. WHEN YOU"
T$=T$+" REALISE SIXTEEN SCROLLS ARE ON ONE SCREEN AND USING SEVERAL SCREENS"
T$=T$+" IE SCREEN CLONES THEN THIS AINT BAD. OH YES YOU COULD FIDDLE THE"
T$=T$+" THE SPEED OF EACH SCROLL LINE AS WELL....................."
T$=T$+"LETS SLOW DOWNbcdefgYEHAAA STOP ab"
COUNT=1
Repeat
Inc CNT : If CNT>(17/SPEED)+1 Then Gosub NEWLET
Screen Copy SCRN,X,Y,370,Y+SIZE To SCRN,-SPEED,Y
'STRETCH text with Screen COPIES - take out ' to see
'although the reflection makes this a bit jerky
' Screen Copy SCRN,Q-1,Y,X+320,Y+SIZE To SCRN,-SPEED+Q,Y
' Screen Copy SCRN,Q-22,Y,X+300,Y+SIZE To SCRN,-SPEED+Q-21,Y
' Screen Copy SCRN,Q-42,Y,X+280,Y+SIZE To SCRN,-SPEED+Q-41,Y
' Screen Copy SCRN,Q-62,Y,X+260,Y+SIZE To SCRN,-SPEED+Q-61,Y
'* How about his for a reflection
'* although there is a better way, of copying direct to
'* memeory using the copper, its a bit too complicated,
'* so well stay with this easy method, will show you this
'* in the next demo, Im doing, it takes no extra processor time
'* unlike the next line of code...........
'* put in next line for an okayish reflection
'* Get Bob 0,1,0,0 To 340,14 : Bob 1,-SPEED,30,1+$4000 : Wait Vbl
'* however if you do, block out the next 5 lines
Screen Copy 0,0,0,350,16 To 1,0,0
Screen Copy 1,0,0,350,16 To 1,0,18
Screen Copy 1,0,0,350,32 To 1,0,34 : Wait Vbl
Screen Copy 1,0,0,350,66 To 1,0,70
Screen Copy 1,0,0,340,128 To 1,0,138
'* line above slams some extra copies to screen, screen clone is
'* possible better but limited on number of screens, try
'* putting an indiviual line at a specific screen position and
'* moving it at a different speed..............
Until Fire(0)
Dreg(0)=Execall(-138)
Fade 2 : Wait 10 : Edit
Pop Proc
NEWLET:
TEX$=Mid$(T$,PNR,1)
T=Asc(TEX$)-64
If TEX$=" " Then T=40
If TEX$="." Then T=27
If TEX$="?" Then T=28
If TEX$="," Then T=39
If TEX$="^" Then T=40 : Rainbow Del 0 : Rainbow Del 1 : Screen To Back 0
If TEX$="&" Then T=40 : Screen To Front 0
'/* Use lowercase letters to specify speed */
'/* "a" pauses text, for 100 */
If TEX$="a" Then T=40 : Wait 100
If TEX$="b" Then T=40 : SPEED=1
If TEX$="c" Then T=40 : SPEED=2
If TEX$="d" Then T=40 : SPEED=3
If TEX$="e" Then T=40 : SPEED=4
If TEX$="f" Then T=40 : SPEED=5
If TEX$="g" Then T=40 : SPEED=6
'/* simple Put these chacracters in your message string to change the speeds */
Paste Icon 340,Y,T
Inc PNR : If PNR>Len(T$) Then PNR=1
CNT=1
Return
End Proc